iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 17
1

OpenCV的函式庫提供使用者繪製文字的功能,安裝時就有包含多種字型,只要在參數內選擇字型就可以直接使用。

import numpy as np
import cv2

# 灰色底圖
img = np.zeros((400, 400, 3), np.uint8)
img.fill(128)

我們先設定一個測試用的變數字串:

text = "I'm here!"

OpenCV的文字輸出函式為cv2.putText,可在圖片上面加上自訂文字,具體用法和參數設定如下:

cv2.putText(影像, 輸出文字, 文字座標, 字型, 字元大小, 文字顏色, 線條寬度, 線條種類)

其中字型設定可用的參數為——

FONT_HERSHEY_SIMPLEX:正常大小無襯線字體、
FONT_HERSHEY_PLAIN:小號無襯線字體、
FONT_HERSHEY_DUPLEX:正常大小無襯線字體,比FONT_HERSHEY_SIMPLEX複雜一點、
FONT_HERSHEY_COMPLEX:正常大小有襯線字體、
FONT_HERSHEY_TRIPLEX:正常大小有襯線字體,比FONT_HERSHEY_COMPLEX複雜一點、
FONT_HERSHEY_COMPLEX_SMALL:FONT_HERSHEY_COMPLEX的小號、
FONT_HERSHEY_SCRIPT_SIMPLEX:手寫風格細體、
FONT_HERSHEY_SCRIPT_COMPLEX:手寫風格粗體,

——這些字型參數和斜體參數FONT_ITALIC同時使用會得到對應的斜體字。

# 範例
cv2.putText(img, text, (10, 40), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 255), 1, cv2.LINE_AA)
cv2.putText(img, text, (10, 80), cv2.FONT_HERSHEY_PLAIN, 1, (255, 0, 255), 1, cv2.LINE_AA)
cv2.putText(img, text, (10, 120), cv2.FONT_HERSHEY_DUPLEX, 1, (255, 255, 0), 1, cv2.LINE_AA)
cv2.putText(img, text, (10, 160), cv2.FONT_HERSHEY_COMPLEX, 1, (0, 255, 255), 1, cv2.LINE_AA)
cv2.putText(img, text, (10, 200), cv2.FONT_HERSHEY_TRIPLEX, 1, (255, 0, 255), 1, cv2.LINE_AA)
cv2.putText(img, text, (10, 240), cv2.FONT_HERSHEY_COMPLEX_SMALL, 1, (255, 255, 0), 1, cv2.LINE_AA)
cv2.putText(img, text, (10, 280), cv2.FONT_HERSHEY_SCRIPT_SIMPLEX, 1, (0, 255, 255), 1, cv2.LINE_AA)
cv2.putText(img, text, (10, 320), cv2.FONT_HERSHEY_SCRIPT_COMPLEX, 1, (255, 0, 255), 1, cv2.LINE_AA)

cv2.imshow('TextImage', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

cv2.putText非常適合用來標注圖片和重點醒目提示,在進行圖片處理時很常會用到這個函式!

上面每一行cv2.putText都試著執行看看吧,你會看到各種不同字型的I'm here!


上一篇
Day16-畫矩形
下一篇
Day18-畫橢圓
系列文
OpenCV 從零開始的影像處理30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言